
	function MarkRows_toggle( sender_id, container_id )
	{
		var sender_checked = getobj(sender_id).checked;
		
		var rows = getobj(container_id).getElementsByTagName('tr');
		var unchanged = true;
		
		for( var i=0; i<rows.length; i++ )
		{
			checkbox = rows[i].getElementsByTagName('input')[0];
			if(checkbox && checkbox.type=='checkbox')
			{
				if(checkbox.disabled==false)
				{
					unchanged = unchanged & checkbox.checked;
					checkbox.checked = sender_checked;
				}
			}
		}
	}

	function toggle_div_showing(divname)
	{//div id="div1" style="display:block;"
		if(divname!=null)
		{
			ctrl = document.getElementById(divname);
			if(ctrl!=null)
			{
				ret = ctrl.style.display == "block";
				//ret = ctrl.display.equalsIgnoreCase("block");
				if(ret)
					ctrl.style.display = "none";
				else
					ctrl.style.display = "block";
			}
			else
				alert("no elements found");
		}else
			alert("argu is null");
	}
	function encodeURL(str)
	{
    var s0, i, s, u;
    s0 = "";                // encoded str
    for (i = 0; i < str.length; i++){   // scan the source
        s = str.charAt(i);
        u = str.charCodeAt(i);          // get unicode of the char
        if (s == " "){s0 += "+";}       // SP should be converted to "+"
        else {
            if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){       // check for escape
                s0 = s0 + s;            // don't escape
            }
            else {                  // escape
                if ((u >= 0x0) && (u <= 0x7f)){     // single byte format
                    s = "0"+u.toString(16);
                    s0 += "%"+ s.substr(s.length-2);
                }
                else if (u > 0x1fffff){     // quaternary byte format (extended)
                    s0 += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else if (u > 0x7ff){        // triple byte format
                    s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else {                      // double byte format
                    s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
            }
        }
    }
    return s0;
	}